package ai.people.platform.system.mapper;

import ai.people.netmon.framework.domain.system.entity.NmSystemUser;
import ai.people.netmon.framework.domain.system.vo.NmSystemUserSimpleVO;
import ai.people.netmon.framework.domain.system.vo.NmSystemUserVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 系统用户映射器
 *
 * @author yuanqinglong
 * @date 2022/3/4 15:49
 */
@Mapper
public interface SystemUserMapper extends BaseMapper<NmSystemUser> {


    /**
     * 通过id获取用户信息
     *
     * @param userId 用户id
     * @return {@link NmSystemUserVO}
     */
    NmSystemUserVO getUserInfoById(@Param("userId") Long userId);


    /**
     * 更新密码帐户
     *
     * @param account  账户
     * @param password 密码
     * @return int
     */
    int updatePasswordByAccount(@Param("account") String account,@Param("password") String password);


    /**
     * 通过账号获取用户信息
     *
     * @param account 账号
     * @return {@link NmSystemUserVO}
     */
    NmSystemUserVO getUserInfoByAccount(@Param("account") String account);


    /**
     * 用户列表
     *
     * @param searchKeywords 模糊查询
     * @param page           页面
     * @return {@link IPage}<{@link NmSystemUserVO}>
     */
    IPage<NmSystemUserVO> listUsers(IPage<NmSystemUserVO> page, @Param("searchKeywords") String searchKeywords);


    /**
     * 非管理员用户列表
     *
     * @return {@link List}<{@link NmSystemUserSimpleVO}>
     */
    List<NmSystemUserSimpleVO> listNonAdminUsers();


}
